package com.ttg.web.dao;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ttg.common.dto.TagProducer;
import com.ttg.common.entities.BasePage;
import com.ttg.model.dto.MctInfoListGetDto;
import com.ttg.model.dto.open.QueryVipGradeByMctNoDto;
import com.ttg.model.pojo.BankPrivatePrimitive;
import com.ttg.model.pojo.BankPublicPrimitive;
import com.ttg.model.pojo.VipGradeConfig;
import com.ttg.model.pojo.VipRatingConfig;
import com.ttg.model.vo.MctInfoListGetVo;
import com.ttg.model.vo.VipInfoGetListVo;
import com.ttg.model.vo.open.QueryVipGradeByMctVo;
import com.ttg.model.vo.open.QueryVipPublicTagInfoVo;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * @author zhangHongYuan
 * @description
 * @date 2024/1/26 9:58
 */
public interface BankPublicPrimitiveDao extends IService<BankPublicPrimitive> {


    BankPublicPrimitive getByMctNo(String mctNo);

    QueryVipPublicTagInfoVo queryVipTagByPublic(String mctNo, Integer type);

    BankPublicPrimitive getByMctNoAndDateLast(String mctNo);

    BasePage<MctInfoListGetVo> getList(BasePage<VipInfoGetListVo> page, MctInfoListGetDto dto);


    BasePage<BankPublicPrimitive> getAllByPage(BasePage page);

    BankPublicPrimitive getByMctNoSelectId(String mctNo);


    Map<String, Long> existsMapByMctNo(List<String> existsWhere);


    BasePage<BankPublicPrimitive> getPrimitiveBasesByVipRatingConfig(VipRatingConfig vipRatingConfig, BasePage page);


    List<String> getMctNosByTags(List<TagProducer> tags, String key);

//    void updateGrowByTaskIdAndDate(Long taskId, Integer nowDate, LocalDateTime nowTime);

    List<QueryVipGradeByMctVo> queryVipGradeByMctNo(List<QueryVipGradeByMctNoDto> mctNos, Integer typePublic);


    void sumTodayIntegral(Integer excuteDate);

    List<QueryVipPublicTagInfoVo> queryVipTagByMcyNo(List<String> nos,Integer type);

    BankPublicPrimitive getLastMctId();

    void rattingGradeByBatch(Long idStart, Long idEnd);

    boolean newMctRating();

    List<BankPublicPrimitive> bankPublicPrimitive(int pageSize, long starId);
}
